﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Xml;
using DTO;

namespace BLL
{
    public class FeedBLL
    {

        #region public List<FeedDTO> GetListFeed(string channel)
        // Method getListFeed

        /// <summary>
        /// Phương thức lấy danh sách các news từ url của 1 website
        /// </summary>
        /// <param name="channel">string - Url của website có Feed</param>
        /// <returns>List</returns>
        public List<FeedDTO> GetListFeed(string channel)
        {
            List<FeedDTO> _lstFeed = new List<FeedDTO>();

            WebRequest _myrequest = WebRequest.Create(channel);
            WebResponse _myresponse = _myrequest.GetResponse();

            Stream _streamrss = _myresponse.GetResponseStream();
            XmlDocument _rssdoc = new XmlDocument();
            _rssdoc.Load(_streamrss);

            XmlNodeList _rssitems = _rssdoc.SelectNodes("rss/channel/item");

            for (int i = 0; i < _rssitems.Count; i++)
            {
                XmlNode _rssnode;
                _rssnode = _rssitems.Item(i).SelectSingleNode("title");

                FeedDTO _feedDTO = new FeedDTO();

                if (_rssnode != null)
                {
                    _feedDTO.Title = _rssnode.InnerText;
                }
                else
                {
                    _feedDTO.Title = "";
                }

                _rssnode = _rssitems.Item(i).SelectSingleNode("description");
                if (_rssnode != null)
                {
                    _feedDTO.Description = _rssnode.InnerText;
                }
                else
                {
                    _feedDTO.Description = "";
                }

                _rssnode = _rssitems.Item(i).SelectSingleNode("link");
                if (_rssnode != null)
                {
                    _feedDTO.Link = _rssnode.InnerText;
                }
                else
                {
                    _feedDTO.Link = "";
                }

                _rssnode = _rssitems.Item(i).SelectSingleNode("pubDate");
                if (_rssnode != null)
                {
                    _feedDTO.Pubdate = _rssnode.InnerText;
                }
                else
                {
                    _feedDTO.Pubdate = "";
                }

                // add vào list
                _lstFeed.Add(_feedDTO);
            }

            return _lstFeed;
        }
        #endregion
    }
}
